package com.sojson.core.tags;

import java.util.Map;

import com.sojson.common.utils.StringUtils;

/**
 * 开发公司：SOJSON在线工具 <p>
 * 版权所有：© www.sojson.com<p>
 * 博客地址：http://www.sojson.com/blog/  <p>
 * <p>
 * <p>
 * 自定义标签的父类。
 * <p>
 * <p>
 * <p>
 * 区分　责任人　日期　　　　说明<br/>
 * 创建　周柏成　2016年6月2日 　<br/>
 *
 * @author zhou-baicheng
 * @version 1.0, 2016年6月2日 <br/>
 * @email so@sojson.com
 */
@SuppressWarnings("unchecked")
public abstract class SuperCustomTag {

    /**
     * 本方法采用多态集成的方式，然后用父类接收，用父类调用子类的 { result(...)} 方法。
     *
     * @param params
     * @return
     */
    protected abstract Object result(Map params);


    /**
     * 直接强转报错，需要用Object过度一下
     *
     * @param params
     * @return
     */
    protected Long getLong(Map params, String key) {
        Object i = params.get(key);
        return StringUtils.isBlank(i) ? null : new Long(i.toString());
    }

    protected String getString(Map params, String key) {
        Object i = params.get(key);
        return StringUtils.isBlank(i) ? null : i.toString();
    }

    protected Integer getInt(Map params, String key) {
        Object i = params.get(key);
        return StringUtils.isBlank(i) ? null : Integer.parseInt(i.toString());
    }
}
